package co.gov.aerocivil.siga.registrarquejaservicioaerolinea.servicio.impl;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import co.gov.aerocivil.siga.accesobd.servicio.ICrudServicio;
import co.gov.aerocivil.siga.comun.excepcion.SistemaExcepcion;
import co.gov.aerocivil.siga.comun.modelo.ServicioAbstracto;
import co.gov.aerocivil.siga.comun.modelo.quejaaerolinea.Vuelo;
import co.gov.aerocivil.siga.comun.servicio.impl.administrador.EstadoServicio;
import co.gov.aerocivil.siga.registrarquejaservicioaerolinea.servicio.IVueloServicio;

/**
 * Implementación de la interfaz, para la manipulación de vuelo
 * 
 * @author lfcortes
 * 
 */
@Stateless
public class VueloServicio extends ServicioAbstracto<Long, Vuelo> implements IVueloServicio {
	
	/**
	 * Inyección de los servicios para operaciones con la base de datos
	 */
	@EJB
	protected ICrudServicio crudServicio;
	
	/**
	 * Constante que representa la instancia del Log
	 */
	private static final Logger LOG = LoggerFactory.getLogger(EstadoServicio.class);

	/**
	 * Constructor del servicio de vuelos
	 */
	public VueloServicio() {
		super(Vuelo.class);
	}

	@Override
	public Vuelo guardar(Vuelo vuelo) {
		try {
			vuelo = crudServicio.guardar(vuelo);
		} catch (RuntimeException e) {
			logErrorServicio.log("No se pudo guardar el vuelo["
					+ e.getMessage() + "]", LOG);
			throw new SistemaExcepcion(e);
		}
		return vuelo;
	}

}
